Automated Invariant Generation by Algebraic Techniques for Imperative Program Verification in Theorema Automated Invariant Generation by Algebraic Techniques for Imperative Program Verification in Theorema

نویسنده

  • Laura Kovács
چکیده

This thesis presents algebraic and combinatorial approaches for reasoning about imperative loops with assignments, sequencing and conditionals. A certain family of loops, called P-solvable, is defined for which the value of each program variable can be expressed as a polynomial of the initial values of variables, the loop counter, and some new variables where there are algebraic dependencies among the new variables. For such loops, a systematic method is developed for generating polynomial invariants. Further, if the bodies of these loops consist only of assignments and conditional branches, and test conditions in the loop and conditionals are ignored, the method is shown to be complete for some special cases. By completeness we mean that it generates a set of polynomials from which, under additional assumptions for loops with conditional branches, any polynomial invariant can be derived. Many non-trivial algorithms working on numbers can be naturally implemented using P-solvable loops. By combining advanced techniques from algorithmic combinatorics, symbolic summation, computer algebra and computational logic, a framework is developed for generating polynomial invariants for imperative programs operating on numbers. Exploiting the symbolic manipulation capabilities of the computer algebra system Mathematica, these techniques are implemented in a new software package called Aligator. By using several combinatorial packages developed at RISC, Aligator includes algorithms for solving special classes of recurrence relations (those that are either Gosper-summable or C-finite) and generating polynomial dependencies among algebraic exponential sequences. Using Aligator, a complete set of polynomial invariants is successfully generated for numerous imperative programs working on numbers. The automatically obtained invariant assertions are subsequently used for proving the partial correctness of programs by generating appropriate verification conditions as first-order logical formulas. Based on Hoare logic and the weakest precondition strategy, this verification process is supported in an imperative verification environment implemented in the Theorema system. Theorema is convenient for such an integration given that it is built on top of the computer algebra system Mathematica and includes automated methods for theorem proving in predicate logic, domain specific reasoning and proving by induction.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Generation of Loop Invariants in Theorema by Combinatorial and Algebraic Methods

When generating verification conditions for a program, one is faced with one major task, namely with the situation when some additional assertions are needed (e.g. loop invariants). These assertions have the property that either they are invariant during execution of the program, or they depend on some other invariant properties. Therefore, automated formal verification is sensitive to the auto...

متن کامل

Automated Generation of Loop Invariants by Recurrence Solving in Theorema

Most of the properties established during program verification are either invariants or depend crucially on invariants. The effectiveness of automated verification of (imperative) programs is therefore sensitive to the ease with which invariants, even trivial ones, can be automatically deduced. We present a method for invariant generation that relies on combinatorial techniques, namely on recur...

متن کامل

Automated Generation of Loop Invariants by Recurrence Solving in Theorema ∗ Presented at 6 International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC04), Timişoara, Romania

Most of the properties established during program verification are either invariants or depend crucially on invariants. The effectiveness of automated verification of (imperative) programs is therefore sensitive to the ease with which invariants, even trivial ones, can be automatically deduced. We present a method for invariant generation that relies on combinatorial techniques, namely on recur...

متن کامل

Experimental Program Verification in the Theorema System

We describe practical experiments of program verification in the frame of the Theorema system. This includes both imperative programs (using Hoare logic), as well as functional programs (using fixpoint theory). For a certain class of imperative programs we are able to generate automatically the loop invariants and then verification conditions, by using combinatorial and algebraic techniques. Ve...

متن کامل

Practical Aspects of Algebraic Invariant Generation for Loops with Conditionals

We present a method that generates automatically algebraic invariant properties of a loop. The implementation and verification process is done in a prototype verification condition generator for imperative programs. This verification tool is integrated into the overall framework of the Theorema system, which is based on a version of higher order predicate logic and includes verification procedu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007